package nivel;

import java.util.TreeMap;

/**
 * Clase encargada de modelar el tablero logico de un nivel mediante un mapeo
 * <coordenada, casillero>
 * 
 * @author Agustin Orge (LU.85538)
 * @author Victoria Martinez de la Cruz (LU.87620)
 */
//
public class Tablero {

	/** el tablero */
	protected TreeMap<Coordenada, Casillero> tab;

	/**
	 * Constructor de Tablero
	 * 
	 * Se encarga de crear el mapeo
	 */
	public Tablero() {
		tab = new TreeMap<Coordenada, Casillero>();
	}

	// Comandos

	/**
	 * Agrega un casillero al tablero.
	 * 
	 * @param cas
	 *            casillero a agregar
	 */
	public void agregarAlTablero(Casillero cas) {
		tab.put(cas.getCoordenada(), cas);
	}

	/**
	 * Elimina un casillero del tablero segun la coordenada que posee;
	 * 
	 * @param coordenada
	 *            del casillero a eliminar
	 */
	public void eliminarDelTablero(Coordenada co) {
		tab.remove(co);
	}

	// Consultas

	/**
	 * Cantidad de casilleros del tablero
	 * 
	 * @return cantidad de casilleros
	 */
	public int cant() {
		return tab.size();
	}

	/**
	 * Busca un casillero en el tablero a partir de una coordenada (x,y)
	 * 
	 * 
	 * @param x
	 *            posicion en el eje X
	 * @param y
	 *            posicion en el eje Y
	 * @return casillero que tiene esa posicion, null si el casillero no
	 *         pertenece al tablero
	 */
	public Casillero buscarCasillero(int x, int y) {
		Coordenada co = new Coordenada(x, y);
		return tab.get(co);
	}

}
